﻿/*
 Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
CKEDITOR.dialog.add("textarea", function (b) {
    return {
        title: b.lang.forms.textarea.title, minWidth: 350, minHeight: 220, onShow: function () {
            delete this.textarea;
            var a = this.getParentEditor().getSelection().getSelectedElement();
            a && "textarea" == a.getName() && (this.textarea = a, this.setupContent(a))
        }, onOk: function () {
            var a, b = this.textarea, c = !b;
            c && (a = this.getParentEditor(), b = a.document.createElement("textarea"));
            this.commitContent(b);
            c && a.insertElement(b)
        }, contents: [{
            id: "info", label: b.lang.forms.textarea.title, title: b.lang.forms.textarea.title,
            elements: [{
                id: "_cke_saved_name",
                type: "text",
                label: b.lang.common.name,
                "default": "",
                accessKey: "N",
                setup: function (a) {
                    this.setValue(a.data("cke-saved-name") || a.getAttribute("name") || "")
                },
                commit: function (a) {
                    this.getValue() ? a.data("cke-saved-name", this.getValue()) : (a.data("cke-saved-name", !1), a.removeAttribute("name"))
                }
            }, {
                type: "hbox", widths: ["50%", "50%"], children: [{
                    id: "cols",
                    type: "text",
                    label: b.lang.forms.textarea.cols,
                    "default": "",
                    accessKey: "C",
                    style: "width:50px",
                    validate: CKEDITOR.dialog.validate.integer(b.lang.common.validateNumberFailed),
                    setup: function (a) {
                        this.setValue(a.hasAttribute("cols") && a.getAttribute("cols") || "")
                    },
                    commit: function (a) {
                        this.getValue() ? a.setAttribute("cols", this.getValue()) : a.removeAttribute("cols")
                    }
                }, {
                    id: "rows",
                    type: "text",
                    label: b.lang.forms.textarea.rows,
                    "default": "",
                    accessKey: "R",
                    style: "width:50px",
                    validate: CKEDITOR.dialog.validate.integer(b.lang.common.validateNumberFailed),
                    setup: function (a) {
                        this.setValue(a.hasAttribute("rows") && a.getAttribute("rows") || "")
                    },
                    commit: function (a) {
                        this.getValue() ? a.setAttribute("rows",
                            this.getValue()) : a.removeAttribute("rows")
                    }
                }]
            }, {
                id: "value", type: "textarea", label: b.lang.forms.textfield.value, "default": "", setup: function (a) {
                    this.setValue(a.$.defaultValue)
                }, commit: function (a) {
                    a.$.value = a.$.defaultValue = this.getValue()
                }
            }]
        }]
    }
});